home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 009 / dos30fix.dqt / dos30fix.dat
Encoding:
Text File  |  1984-11-08  |  9.9 KB  |  311 lines

  1.                     software solutions by:
  2.  
  3.  
  4.                        Soft-SHARE (tm)
  5.  
  6.                              by
  7.  
  8.                        James P. Morgan
  9.  
  10.                    1749 AMERICANA BLVD, APT 23-G
  11.                        ORLANDO FLA, 32809
  12.  
  13.                          (305) 826-7297
  14.  
  15.  
  16. *******************************************************************************
  17.  
  18. THIS IS A FIRST ATTEMPT TO CHECK OUT DOS 3.0 AND COMPARE KNOWN BUGS
  19. AND FIXES THAT WERE IN DOS 2.X
  20.  
  21. *******************************************************************************
  22.  
  23.  
  24.  
  25. 1). COMSPEC DID NOT WORK.
  26.     ---------------------
  27.  
  28.  HEY !!! THE 'COMSPEC' COMMAND NOW APPEARS TO WORK, FOR DOS 3.0.
  29.  
  30.   EXAMPLE : >SET COMSPEC=C:\COMMAND.COM
  31.  
  32.  THEN WHEN DOS NEEDS TO RELOAD COMMAND.COM IT WILL GO TO C:\
  33.  
  34.  
  35.  
  36. 2). TREE.COM HAD ROOT BUG  - DOS 2.0
  37.     ---------------------
  38.  
  39. ************************************************************************
  40.  
  41. THIS IS AN UPDATED VERSION  FOR DOS 3.0 - THEY STILL DIDNT FIX THE BUG!!
  42.  
  43. ************************************************************************
  44.  
  45. TREE WITH ROOT BUGS
  46. --------------------
  47.  
  48.    HAVING A TALLGRASS 20 MEG HARD DISK WITH OVER 50 SUB-DIRECTORIES,
  49.  I HAVE COME TO DEPEND ON THE DOS UTILITY TREE.COM TO HELP ME CONTROL
  50.  THE SUB-DIRECTORYS.
  51.  
  52.    WELL, ONE DAY TO MY SURPRISE, I COULD NO LONGER LIST ANY SUB-DIRECTORYS
  53.  PAST THE FIRST ROOT SUB-DIRECTORY, 'DATABASE.DIR'.
  54.   "OH NO!, MY HARD DISK HAS PROBLEMS", I SAID.  AFTER SOME CUSSING AND SWEATING
  55.  AND SEVERAL LONG NITES AND DAYS, I HAD ISOLATED THE PROBLEM TO THE TREE.COM
  56.  UTILITY PROGRAM.
  57.  
  58.     THE PROBLEM READS LIKE THIS:
  59.         -------
  60.  
  61.     1). IF YOU HAVE A ROOT SUB-DIRECTORY ENTRY THAT IS ELEVEN (11)
  62.        CHARACTERS LONG
  63.  
  64.       AND
  65.  
  66.     2). YOU HAVE AT LEAST ONE (1) SUB-DIRECTORY WITHIN THE ROOT DIRECTORY
  67.  
  68.  
  69.        TREE.COM STOPS LOOKING FOR ANY OTHER DIRECTORYS.
  70.  
  71.      THE SOULTION READS AS :
  72.          --------
  73.  
  74.      1). DEBUG TREE.COM
  75.  
  76.      2). E 3D4 0D        'FOR DOS 2.X ONLY
  77.      2). E 81A 0D        'FOR DOS 3.0 ONLY
  78.  
  79.      3). W
  80.  
  81.      4). Q
  82.  
  83.        NO MORE ROOT BUGS, SO NOW WE HAVE A HEALTHY TREE.COM AGAIN.
  84.  
  85.  
  86.    AS AN ADDED BONUS, SHOULD BE WORTH A COUPLE OF MORE DOLLARS, THERE IS
  87.   AN UNDOCUMENTED DOS FUNCTION CALL IN TREE.COM.
  88.  
  89.    THIS FUNCTION CALL DETERMINES THE DEFINED SYSTEM PATH SEPARATOR
  90.  CHARACTER. THIS SEPARATOR MAY BE DEFINED AT BOOT TIME BY INCLUDING
  91.  IN THE FILE 'CONFIG.SYS' THE FOLLOWING UNDOCUMENTED STATEMENT :
  92.  
  93.             SWITCHAR=X
  94.  
  95.     WHERE 'X' IS ANY CHARACTER ,(EXAMPLE : SWITCHAR=-) FOR YOU 'UNIX'
  96.   USERS.
  97.  
  98.     YOU MAY ASK, HOW DO I DETERMINE WHAT THE SEPARATOR CHARACTER WAS
  99.  THAT I DEFINED AT BOOT TIME, FROM AN APPLICATION PROGRAM. NOW THE BONUS.
  100.  
  101.     USING  PARTIAL ASSEMBLER  CODE AS AN EXAMPLE :
  102.  
  103.                   XOR DX,DX
  104.                   MOV AX,3700
  105.                   INT 21
  106.                   MOV AL,DL
  107.  
  108.  
  109.  
  110.     GUESS WHATS IN REG. AL, RIGHT,THE DEFINED SEPARATOR CHARACTER.
  111.   GOOD LUCK, BUT I WOULD LIKE TO HEAR FROM OTHER USERS THAT HAVE
  112.   FOUND MORE UNDOCUMENTED FUNCTION CALLS.
  113.  
  114.     TREE.COM, FOR DOS 2.1, IS THE SAME AS DOS2.0. I HAVE REPORTED THE
  115.  BUG AND FIX TO IBM.
  116.  
  117.     TREE.COM FOR DOS 3.0 IS A DIFFERENT SIZE.
  118.  
  119.  
  120. 3). FIX COMP.COM FOR MORE THAN 10 MISMATCHES
  121.     ----------------------------------------
  122.  
  123.                     WHEN '10' IS NOT ENOUGH
  124.                    -------------------------
  125.  
  126.   PROBABLY ONE OF THE MOST ANNOYING DOS 2.0AND 3.0 UTILITYS IS 'COMP.COM'.
  127. BY ANNOYING I MEAN THAT EVEN THOUGH IT WONT LET U COMPARE UNEQUAL
  128. LENGTH FILES, IT WILL STOP AFTER FINDING 10 UNEQUAL COMPARES.
  129.  
  130.   WELL MANY TIMES I MODIFY SYSTEM UTILITIES OR PATCH OTHER PROGRAMS
  131. OR FILES TO GET BETTER OR DIFFERENT RESULTS, AND MORE OFTEN THAN NOT
  132. , MORE THAN 10 BYTES GET CHANGED, AND AT A LATER DATE I MIGHT WANT
  133. TO COMPARE THE ORIGINAL WITH THE CHANGED, TO GET A LISTING OF THE
  134. DIFFERENCES.
  135.  
  136.  IM NOT GOING TO DO ANYTHING ABOUT THE UNEQUAL LENGTH SITUATION,
  137. BUT I WILL TELL YOU WHERE TO PATCH COMP.COM TO LET YOU SET YOUR OWN
  138. 'STOP AFTER UNEQUAL COMPARE' COUNT.
  139.  
  140. 1) DEBUG COMP.COM
  141.  
  142.    ENTER -L
  143.    *************** DOS 2.X
  144.  
  145.    ENTER -U CS:396
  146.  
  147.           YOU SHOULD SEE : CMP BYTE PTR [07E9],0A
  148.  
  149.           ALSO THE INSTRUCTION PRIOR TO CS:396 IS THE INSTRUCTION
  150.         THAT INCREMENTS (ADDS +1) TO [07E9].
  151.  
  152.    ENTER -E CS:39A XX   (WHERE XX IS THE NEW HEX COUNT LIMIT, INSTEAD OF 'OA')
  153.  
  154.           ALSO THE MESSAGE "10 Mismatches" IS AT CS:809, YOU MAY WANT TO
  155.         CHANGE THE MESSAGE TO BETTER SUIT YOURSELF.
  156.    *****************
  157.  
  158.  
  159.  
  160.    ***************** DOS 3.0
  161.  
  162.    ENTER -U CS:879
  163.  
  164.           YOU SHOULD SEE : CMP BYTE PTR [0568],0A
  165.  
  166.           ALSO THE INSTRUCTION PRIOR TO CS:879 IS THE INSTRUCTION
  167.         THAT INCREMENTS (ADDS +1) TO [0568].
  168.  
  169.    ENTER -E CS:879 XX   (WHERE XX IS THE NEW HEX COUNT LIMIT, INSTEAD OF 'OA')
  170.  
  171.           ALSO THE MESSAGE "10 Mismatches" IS AT CS:B51, YOU MAY WANT TO
  172.         CHANGE THE MESSAGE TO BETTER SUIT YOURSELF.
  173.    ******************
  174.  
  175.  
  176.    ENTER -W
  177.  
  178.    ENTER -Q
  179.  
  180.  
  181. 2) YOU SHOULD NOW HAVE A COPY OF COMP.COM THAT STOPS ONLY
  182.   AFTER YOU WANT IT TO.
  183.  
  184.  
  185. ****************************************************************************
  186.  
  187. NOTE: THE UNEQUAL COUNTER IS A BYTE, SO THE MAXIMUM NUMBER OF UNEQUAL COMPARES
  188.      COULD NOT BE GREATER THAN 255.
  189.  
  190.  
  191. 4). DEBUG.COM PROBLEM WITH SEGMENT REGISTERS  (IN DOS 2.X)
  192.     ----------------------------------------
  193.  
  194.    **********************************************************
  195.  
  196.     NOTE !!!!!!  NOTE !!!!!!!! NOTE !!!!!!!! NOTE !!!!!!
  197.  
  198.     DOS 3.0 DEBUG.COM SEEMS TO HAVE CORRECTED THIS PROBLEM
  199.  
  200.     *********************************************************
  201.  
  202.  
  203.                      OH, DEM-BUGS, DEM-BUGS IN DEBUG
  204.                      ---------------------------------
  205.  
  206.  WE ALL KNOW THAT FLEAS HAVE FLEAS, DON'T WE. WELL NOW WE KNOW DEBUG
  207. HAS BUGS. I AM REFERRING TO THE DOS UTILITY 'DEBUG.COM' SUPPLIED ON THE
  208. DOS 2.X SUPPLEMENTAL PROGRAM DISK FOR IBM PC-DOS.
  209.  
  210.  THERE EXISTS A VERY SEVERE BUG IN DEBUG.COM. THE SYMPTOMS ARE NOT UNLIKE
  211. COLD SYMPTOMS, EACH PERSONS ARE A LITTLE DIFFERENT. WELL THIS 'BUG'
  212. EXHIBITS DIFFERENT SYMPTOMS THAT AT FIRST ARE HARD TO DIAGNOSE.
  213.  
  214.  THESE SYMPTOMS CAN BE CAUSE BY ENTERING ANYONE OF THE DEBUG.COM COMMANDS,
  215. SUCH AS 'D CS:100' AS 'D CS;100'. NOTICE THAT THE CHARACTER FOLLOWING
  216. THE SEGMENT REGISTER IS NOT A COLON BUT A SEMI-COLON. THIS CHARACTER DOES
  217. NOT HAVE TO BE A SEMI-COLON, IT COULD BE ANY CHARACTER INCLUDING A SPACE.
  218.  
  219.  IF YOU ENTER THE 'DUMP' COMMAND WITH THE SEMI-COLON YOUR MACHINE WILL
  220. EITHER SCREAM AT YOU AND/OR LOCK UP. IT WILL ALSO IN SOME CASES IMMEDIATELY
  221. RETURN TO PC-DOS WITHOUT SO MUCH AS A GOOD-BYE. TRY IT WITH DIFFERENT DEBUG
  222. COMMANDS AND DIFFERENT SEGMENT REGISTERS. YOU MAY OR MAY NOT BE AMUSED, I WASN'T.
  223.  
  224.   AFTER OVER ANY HOUR INTO TRACING A PROGRAM AND SINGLE STEPPING, I LIFTED MY
  225. FINGER OFF THE SHIFT KEY TO FAST AND THE ":" WAS ENTERED AS ";" AND MY PC WENT
  226. OFF INTO PC-LIMBO. AGAIN THE MOANS AND GROANS AND CUSSING, AS WAS WITH THE
  227. BUG THAT TURNED UP IN TREE.COM. BUT THATS ANOTHER BUG STORY.
  228.  
  229.   I WILL SAVE YOU A GREAT DEAL OF HEART ACHE AND GIVE YOU THE FIX FOR THE
  230. PROBLEM.
  231.  
  232.  FIRST DEBUG DEBUG.COM
  233.  
  234.        ENTER >DEBUG DEBUG.COM
  235.  
  236.        ENTER -U 5D6
  237.  
  238.  YOU SHOULD SEE THE FOLLOWING CODE
  239.  
  240.        XXXX:5D6 D1E1     SHL  CX,1
  241.             5D8 8BD9     MOV  BX,CX
  242.             5DA FFB7F22A PUSH [BX+2AF2]
  243.             5DE 803C3A   CMP  BYTE PTR [SI],3A  'CHECK FOR ":"
  244.             5E1 75BD     JNZ  05A0
  245.             5E3 EBD7     JMP  05BC
  246.  
  247.   THIS IS THE OFFENDING CODE, THE CODE TO FIX THE PROBLEM IS AS FOLLOWS :
  248.  
  249.      ENTER -E 5D6 80 3C 3A 75 C5 D1 E1 8B D9 FF B7 F2 2A
  250.  
  251.        XXXX:5D6 803C3A   CMP  BYTE PTR [SI],3A  'CHECK FOR ":"
  252.             5D9 75C5     JNZ  05A0
  253.             5DB D1E1     SHL  CX,1
  254.             5DD 8BD9     MOV  BX,CX
  255.             5DF FFB7F22A PUSH [BX+2AF2]
  256.             5E3 EBD7     JMP  05BC
  257.  
  258.  
  259.       ENTER -W
  260.  
  261.       ENTER -Q
  262.  
  263.  YOU WILL BE RETURNED TO PC-DOS. AS ALWAYS YOU SHOULD BE WORKING FROM A
  264. BACKUP COPY OF DEBUG.COM.TO TEST OUT THE NEW DEBUG.COM, JUST EXECUTE
  265. DEBUG.COM AND TRY THE SAME TEST. HOPEFULLY YOU SHOULD SEE AN ERROR MESSAGE,
  266.  '^ ERROR' DISPLAYED AT THE POINT IN THE COMMAND.
  267.  
  268.  FOR YOU UNENLIGHTENED, DEBUG.COM WAS PUSHING A WORD ONTO THE STACK EVEN
  269. IF THE CHECK FOR THE ":" (HEX 3A) WAS NOT SUCCESSFUL AND BRANCHING TO A ROUTINE
  270. THAT DID NOT CLEAR THE STACK OF THIS VALUE. SO WHEN A RETURN (RET) WAS
  271. EXECUTED ( WHICH POPS THE STACK FOR THE RETURN ADDRESS) THE WRONG RETURN
  272. POINT WAS ENTERED AND WHAT WOULD HAPPEN IS ANYONES GUESS.
  273.  
  274.  ALL THE FIX DOES IS CHECK FOR A ":" FIRST AND IF FOUND, THEN PUSHES THE STACK.
  275. THIS SHOULD SAVE YOU MIDNIGHT HACKERS A COUPLE OF EXTRA HOURS SLEEP, FROM
  276. HAVING TO RECOVER FROM A LOCKED UP MACHINE. ALSO IF YOU DON'T WANT TO USE
  277. THE SHIFT KEY TO GET THE COLON, CHANGE HEX 3A, SAY TO HEX 3B, A SEMI-COLON.
  278.  
  279.  A FURTHER NOTE. IT APPEARS THAT EVEN THOUGH PC-DOS 2.0 AND 2.1 DEBUG.COM
  280. ARE IDENTICAL CODE, MICROSOFT MS-DOS DEBUG.COM, ON THE COLUMBIA, ALREADY HAS
  281. THE FIX IN IT. MAYBE MICROSOFT WILL TELL IBM FOR THE NEXT RELEASE OF DOS,
  282. UNLESS IBM DOS X.X DOES NOT COME FROM MICROSOFT.
  283.  
  284.  
  285.  
  286. 5). FORMATTING HARD DISK BY MISTAKE
  287.     -------------------------------
  288.  
  289.     THIS APPLIES THE BASIC SAME PATCH TO DOS 3.0 'FORMAT.COM'
  290.  
  291.     AS WAS DONE FOR DOS 2.1. THE PATCH REQUIRES A DRIVE SPECIFIER
  292.  
  293.     BE ENTERED WHEN FORMAT EXECUTED.
  294.  
  295.  
  296.     1). DEBUG FORMAT.COM
  297.  
  298.  
  299.        -E CS:648 EB D5 90 90
  300.        -W
  301.        -Q
  302.  
  303.  
  304.     IF YOU ENTER 'FORMAT' ONLY YOU SHOULD GET 'INVALID DRIVE SPECIFICATION'
  305.     ERROR MESSAGE NOW.
  306.  
  307.  
  308. 6). DOS EXTENDED FUNCTION CALL 'GET FIRST' BUG  (DOS 2.X CALL)
  309.     ------------------------------------------
  310.  
  311.     DOS INT 21 FUNCTION CALL SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS